package com.demo2do.fms.scheduler.service;

import java.util.Date;
import java.util.List;

import com.demo2do.fms.entity.vehicle.source.Vehicle;
import com.demo2do.fms.entity.vehicle.source.VehicleGpsInfo;
import com.demo2do.fms.entity.vehicle.source.VehicleSource;
import com.demo2do.fms.entity.vehicle.tractor.Tractor;


/**
 *
 * @author Ark
 *
 */
public interface VehicleLockWriter {
	
	// ************ lock vehicle by no driver ************
	
	/**
	 * 锁定未绑定合格司机的车辆
	 * 
	 * @param vehicles
	 */
	public void lockVehicleNoDriver(List<Vehicle> vehicles);
	
	
	// ************ lock vehicle by no gps ************
	
	/**
	 * 锁定没有GPS信息的车辆
	 * 
	 * @param vehicleIds
	 */
	public void lockVehicleByGps(List<Long> vehicleIds);
	
	
	// ************ unlock vehicle by gps ************
	
	/**
	 * 解锁两小时内有GPS信息的车辆
	 * 
	 * @param vehicleGpsInfos
	 * @param twoHoursBefore
	 */
	public void unlockVehicleByGps(List<VehicleGpsInfo> vehicleGpsInfos, Date twoHoursBefore);
	
	
	// ************ sync mdm vehicle lock status  ************
	
	/**
	 * 同步MDM车辆状态(包括解锁和锁定)
	 */
	public void syncVehicleByMdm();

	/**
	* @description
	* @params [vids1]
	* @return void
	* @author LZJ
	* @date 2020/12/1 16:04
	**/
	void lockVehicleByVehicleSource(List<VehicleSource> vehicleSources);

	/**
	* @description
	* @params []
	* @return void
	* @author LZJ
	* @date 2020/12/1 17:02
	**/
	void unlockVehicle();
}
